/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package modelo.persistencia;

import java.io.Serializable;
import java.util.List;
import modelo.persistencia.hibernate.SessionFactoryUtil;
import modelo.persistencia.hibernate.pojo.Alquiler;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

/**
 *
 * @author 
 */
public class AlquilerDAO implements IAlquilerDAO {



    public void create(Serializable entidad) {
        Alquiler c=(Alquiler)entidad;
        boolean ret = true;
        //creamos la sesión de Hibernate
        Session sesion=  SessionFactoryUtil.getInstance().openSession();
        //iniciamos transacción
        Transaction t = sesion.beginTransaction();
        //guardamos
        sesion.save(c);
        //lanzamos la transacción
        t.commit();
    }

    public Serializable read(Serializable pk) {
        Alquiler a = null;


        //creamos la sesión de Hibernate
        Session sesion=  SessionFactoryUtil.getInstance().openSession();
        //creamos la consulta HQL
        Query q = sesion.createQuery("from modelo.persistencia.hibernate.pojo.AlquilerImpl where "
                + "idAlquiler=:id");
        q.setInteger("id", Integer.parseInt(pk.toString()));

        List resultado = q.list();
        if (resultado.size()>0){
            a = (Alquiler)resultado.get(0);
        }
        return (Serializable)a;
    }

    public void update(Serializable entidad) {
        Alquiler c=(Alquiler)entidad;
        boolean ret = true;
        //creamos la sesión de Hibernate
        Session sesion=  SessionFactoryUtil.getInstance().openSession();
        //iniciamos transacción
        Transaction t = sesion.beginTransaction();
        //guardamos 
        sesion.update(c);
        //lanzamos la transacción
        t.commit();
    }

    public void delete(Serializable entidad) {
        Alquiler c=(Alquiler)entidad;
        boolean ret = true;
        //creamos la sesión de Hibernate
        Session sesion=  SessionFactoryUtil.getInstance().openSession();
        //iniciamos transacción
        Transaction t = sesion.beginTransaction();
        //guardamos 
        sesion.delete(c);
        //lanzamos la transacción
        t.commit();
    }

    public List list() {

        //creamos la sesión de Hibernate
        Session sesion=  SessionFactoryUtil.getInstance().openSession();
        //creamos la consulta HQL
        Query q = sesion.createQuery("from modelo.persistencia.hibernate.pojo.AlquilerImpl");

        List resultado = q.list();

        return resultado;
    }

    
    
}
